package Day15;

import java.util.Scanner;
// 1:无需package
// 2: 类名必须Main, 不可修改
/**
 * 2021Java真题:数组切分
 * https://www.lanqiao.cn/problems/2148/learning/
 */
public class Main3 {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        //在此输入您的代码...
        int MOD = 1000000007;
        int n = scan.nextInt();
        int[] arr = new int[n + 1];
        for(int i = 1; i <= n; i++){
          arr[i] = scan.nextInt();
        }

        int[] dp = new int[n + 1]; //表示以i为结尾的合法分割数组的方法数
        dp[0] = 1;
        for(int i = 1; i <= n; i++){
          int max=Integer.MIN_VALUE;
          int min=Integer.MAX_VALUE;
          for(int j = i; j >= 1; j--){
            //根据最大值和最小值的差值和下标的差值进行判断是否为连续的数字
            max = Math.max(max , arr[j]);
            min = Math.min(min , arr[j]);
            if(max - min == i - j){
              dp[i] = (dp[i] + dp[j - 1]) % MOD;
            }
          }
        }
        System.out.println(dp[n]);
        scan.close();
    }
}